package com.zha.boss.mvc.settings;

import com.zha.boss.mvc.interceptor.TokenInterceptor;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author: zha
 * @CreateTime: 2024年09月10日 15:55
 */
@Configuration
public class MvcWebConfigSettings implements WebMvcConfigurer {
    @Resource
    private TokenInterceptor tokenInterceptor;
    // 配置拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(tokenInterceptor)
                .addPathPatterns("/**")  // 拦截所有的请求url,先经过拦截器验证jwt
                .excludePathPatterns("/operator/access");  // 不拦截登录请求
    }
    /**
     * 全局跨域处理
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        System.out.println("===========addCorsMappings===========");
        registry.addMapping("/**")    //拦截的请求url ，对这些url执行跨域的处理
                .allowedOriginPatterns("*") //请求来源， 访问boss应用的域名
                .allowedMethods("GET", "HEAD", "POST", "OPTIONS")  //允许前端使用的请求方式
                .allowCredentials(true)  //服务器支持cookie
                .maxAge(3600)                     //预检请求的有效期，单位秒
                .allowedHeaders("*");         //允许出现的请求header
    }

}
